﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace FacialClub.Models.Entities
{
    /// <summary>
    /// Settings
    /// </summary>
    public class Settings
    {
    }

    /// <summary>
    /// Company Info
    /// </summary>
    [MetadataType(typeof(CompanyInfoMetaData))]
    public partial class CompanyInfo
    {
        /// <summary>
        /// Notification Meta Data for Validation
        /// </summary>
        [Bind(Exclude = "CompanyId")]
        public class CompanyInfoMetaData
        {
            /// <summary>
            /// CompanyId
            /// </summary>
            [ScaffoldColumn(false)]
            public object CompanyId { get; set; }

            /// <summary>
            /// Company Name
            /// </summary>
            [Required(ErrorMessage = "Company Name is required")]
            [DisplayName("Name")]
            [StringLength(160)]
            public string CompanyName { get; set; }

            /// <summary>
            /// Company Address
            /// </summary>
            [Required(ErrorMessage = "Company Address is required")]
            [DisplayName("Address")]
            [StringLength(160)]
            public string Address { get; set; }

            /// <summary>
            /// Town/City
            /// </summary>
            [Required(ErrorMessage = "City is required")]
            [DisplayName("City")]
            [StringLength(160)]
            public string City { get; set; }

            /// <summary>
            /// State
            /// </summary>
            [Required(ErrorMessage = "State is required")]
            [DisplayName("State")]
            [StringLength(160)]
            public string State { get; set; }

            /// <summary>
            /// Country
            /// </summary>
            [Required(ErrorMessage = "Country is required")]
            [DisplayName("Country")]
            [StringLength(160)]
            public string Country { get; set; }

            /// <summary>
            /// Postal Code
            /// </summary>
            [Required(ErrorMessage = "Postal Code is required")]
            [DisplayName("Postal Code")]
            [StringLength(160)]
            public string PostalCode { get; set; }

            /// <summary>
            /// Phone
            /// </summary>
            [Required(ErrorMessage = "Phone is required")]
            [StringLength(160)]
            public string Phone { get; set; }

            /// <summary>
            /// Fax
            /// </summary>
            public string Fax { get; set; }

            /// <summary>
            /// Email Address
            /// </summary>
            [Required(ErrorMessage = "Email Required!")]
            [RegularExpression(
                "^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\\-+)|([A-Za-z0-9]+\\.+)|([A-Za-z0-9]+\\++))*[A-Za-z0-9]+@((\\w+\\-+)|(\\w+\\.))*\\w{1,63}\\.[a-zA-Z]{2,6}$"
                , ErrorMessage = "Not a valid email!")]
            public string Email { get; set; }

            /// <summary>
            /// URL
            /// </summary>
            public string URL { get; set; }

            /// <summary>
            /// Contact First Name
            /// </summary>
            [Required(ErrorMessage = "Contact First Name is required")]
            [DisplayName("First Name")]
            [StringLength(160)]
            public string ContactFirstName { get; set; }

            /// <summary>
            /// Contact Last Name
            /// </summary>
            [Required(ErrorMessage = "Contact Last Name is required")]
            [DisplayName("Last Name")]
            [StringLength(160)]
            public string ContactLastName { get; set; }

            /// <summary>
            /// Contact Email Address
            /// </summary>
            [Required(ErrorMessage = "Contact Email Required!")]
            [DisplayName("Email")]
            [RegularExpression(
                "^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\\-+)|([A-Za-z0-9]+\\.+)|([A-Za-z0-9]+\\++))*[A-Za-z0-9]+@((\\w+\\-+)|(\\w+\\.))*\\w{1,63}\\.[a-zA-Z]{2,6}$"
                , ErrorMessage = "Not a valid email!")]
            public string ContactEmail { get; set; }

            /// <summary>
            /// Bill to First Name
            /// </summary>
            [Required(ErrorMessage = "Bill To First Name is required")]
            [DisplayName("First Name")]
            [StringLength(160)]
            public string BillToFirstName { get; set; }

            /// <summary>
            /// Last Name
            /// </summary>
            [Required(ErrorMessage = "Bill To Last Name is required")]
            [DisplayName("Last Name")]
            [StringLength(160)]
            public string BillToLastName { get; set; }

            /// <summary>
            /// Company Address
            /// </summary>
            [Required(ErrorMessage = "Bill To Address is required")]
            [DisplayName("Address")]
            [StringLength(160)]
            public string BillToAddress { get; set; }

            /// <summary>
            /// Town/City
            /// </summary>
            [Required(ErrorMessage = "Bill To City is required")]
            [DisplayName("City")]
            [StringLength(160)]
            public string BillToCity { get; set; }

            /// <summary>
            /// State
            /// </summary>
            [Required(ErrorMessage = "Bill To State is required")]
            [DisplayName("State")]
            [StringLength(160)]
            public string BillToState { get; set; }

            /// <summary>
            /// Country
            /// </summary>
            [Required(ErrorMessage = "Bill To Country is required")]
            [DisplayName("Country")]
            [StringLength(160)]
            public string BillToCountry { get; set; }

            /// <summary>
            /// Postal Code
            /// </summary>
            [Required(ErrorMessage = "Bill To Postal Code is required")]
            [DisplayName("Postal Code")]
            [StringLength(160)]
            public string BillToPostalCode { get; set; }

            /// <summary>
            /// Credit Card Number
            /// </summary>
            [Required(ErrorMessage = "Credit Card Number is required")]
            [DisplayName("Credit Card No.")]
            [StringLength(160)]
            public string CreditCardNumber { get; set; }

            /// <summary>
            /// Name On Card
            /// </summary>
            [Required(ErrorMessage = "Name On Card is required")]
            [DisplayName("Name on Card")]
            [StringLength(160)]
            public string NameOnCard { get; set; }

            /// <summary>
            /// Expiry Date
            /// </summary>
            [Required(ErrorMessage = "Expiry Date is required")]
            [DisplayName("Expiry Date")]
            [StringLength(160)]
            public string ExpiryDate { get; set; }

            /// <summary>
            /// Timezone
            /// </summary>
            [Required(ErrorMessage = "Timezone is required")]
            [DisplayName("Timezone")]
            public string TimeZone { get; set; }

            /// <summary>
            /// Status of the Company
            /// </summary>
            //public bool IsActive { get; set; }

            /// <summary>
            /// Creation Date
            /// </summary>
            public DateTime CreatedDate { get; set; }

            /// <summary>
            /// Modified Date
            /// </summary>
            public DateTime ModifiedDate { get; set; }
        }
    }


}